﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HslCommunication.BasicFramework;
using HslCommunication.Core.IMessage;

namespace HslCommunication.Core.Net
{
    public class NetworkDeviceBase<TNetMessage, TTransform>: NetworkDoubleBase<TNetMessage, TTransform>, IReadWriteNet where TNetMessage : INetMessage, new() where TTransform : IByteTransform, new()
    {
        protected ushort WordLength { get; set; } = 1;

        public OperateResult<byte[]> Read(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<T> ReadCustomer<T>(string address) where T : IDataTransfer, new()
        {
            throw new NotImplementedException();
        }

        public OperateResult<double> ReadDouble(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<double[]> ReadDouble(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<float> ReadFloat(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<float[]> ReadFloat(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<short> ReadInt16(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<short[]> ReadInt16(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<int> ReadInt32(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<int[]> ReadInt32(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<long> ReadInt64(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<long[]> ReadInt64(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<string> ReadString(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<ushort> ReadUInt16(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<ushort[]> ReadUInt16(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<uint> ReadUInt32(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<uint[]> ReadUInt32(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult<ulong> ReadUInt64(string address)
        {
            throw new NotImplementedException();
        }

        public OperateResult<ulong[]> ReadUInt64(string address, ushort length)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, byte[] value)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, short value)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, short[] values)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, int value)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, int[] values)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, long value)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, long[] values)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, float value)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, float[] values)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, double value)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, double[] values)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, string value)
        {
            throw new NotImplementedException();
        }

        public OperateResult Write(string address, string value, int length)
        {
            throw new NotImplementedException();
        }

        public OperateResult WriteCustomer<T>(string address, T value) where T : IDataTransfer, new()
        {
            throw new NotImplementedException();
        }
    }
}
